1. Field of the Invention
This invention relates to a system and method for allowing simultaneous parameter-driven random command execution and deterministic testcase execution with or without synchronization control during verification of a hardware design.
2. Description of Background
In a robust simulation verification environment, there are both parameter-driven, randomly generated test scenarios as well as deterministic or targeted test scenarios that are used to verify the full functionality of a hardware design. Targeted or deterministic test scenarios are used to verify “hard-to-hit” corner cases or specialized function in the design. Parameter-driven, randomly on-the-fly stimulus is used to verify the majority of the test scenarios and to provide higher test coverage for the design.
Previously, targeted tests were performed as isolated test scenarios without the random on-the-fly traffic generation that would normally be present in the actual system environment. In addition, random on-the-fly generated test scenarios were exercised separately from targeted scenarios. At least one drawback from this approach is that because of separation of the two environments, possible bugs that could result in a specialized or targeted test scenario interacting with random on-the-fly generated scenarios in the environment could go undetected in the simulation environment. Also, there was no way for manual testcases to modify or disable the random command generation in the environment.
Previous attempts to combine the two paradigms involved creating a random testcase command and introducing such command into the environment using the same testcase port that was used to introduce manual stimulus. The drawback to this approach is that the manual nature of the testcases that included this random stimulus. The randomization parameters were required to be specified within the testcase file and if the randomization needed to change, the testcases were required to be updated. In addition, if different randomization biases were desired, multiple copies of the same manual testcase with different randomization parameters would need to be created and maintained.
The above-mentioned approach could not support synchronization control that is often included in targeted testcases within a random parameter-driven on-the-fly execution environment. In the past, parameter-driven testcases and testcase port driven manual or random testcases were treated as separate simulation environments.
Furthermore, the targeted or deterministic testcases with or without random stimulus within the testcase did not get continued runtime exposure that other random parameter-driven testcases received since they were not included in the random parameter-driven regression suite.